package com.atguigu.gmall.product.service;

import com.atguigu.gmall.model.product.BaseAttrInfo;
import com.atguigu.gmall.model.product.BaseAttrInfoVO;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * 商品属性信息的service层接口
 */
public interface BaseAttrInfoService {

    /**
     * 条件分页查询
     * @param baseAttrInfo
     * @param pageNum
     * @param size
     * @return
     */
    IPage search(BaseAttrInfo baseAttrInfo, Integer pageNum, Integer size);

    /**
     * 条件查询
     * @return
     */
    List<BaseAttrInfo> search(BaseAttrInfo baseAttrInfo);

    /**
     * 分页查询
     * @param pageNum
     * @param size
     * @return
     */
    IPage<BaseAttrInfo> page(Integer pageNum, Integer size);

    /**
     * 根据主键id删除
     * @param id
     */
    void removeById(Long id);

    /**
     * 根据主键id修改
     * @param baseAttrInfo
     */
    void editById(BaseAttrInfo baseAttrInfo);

    /**
     * 新增数据
     * @param baseAttrInfo
     */
    void save(BaseAttrInfo baseAttrInfo);

    /**
     * 根据id查
     * @param id
     * @return
     */
    BaseAttrInfo getById(Long id);

    /**
     * 查询所有数据
     * @return
     */
    List<BaseAttrInfo> list();

    /**
     * 根据三级分类id查询平台属性数据
     * @param category3Id
     * @return
     */
    List<BaseAttrInfoVO> listByCategory3Id(Long category3Id);

    /**
     * 拿到指定skuId的商品的平台属性和属性值集合
     * @param skuId
     * @return
     */
    List<BaseAttrInfo> listBySkuId(Long skuId);
}
